using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using System.Reflection;

public partial class TableBusqueda : PageController
{
    public List<AbstractBean> loDT = new List<AbstractBean>( );
    public String[] cabecera;
    public String[] detalle;
    public String[] ancho;
    public PaginacionBean pagina = new PaginacionBean();
    public String camposBusqueda = "";
    public String editarTool;
    public String eliminarEditar;
    public String permisoEditar;
    public String mensajeError="";

    protected override void initialize( )
    { 
        if (Request.Form["numeroPagina"] != null)
        {
            irPagina();
        }
        else 
        {
            realizarBusqueda( );
        }
    }

    #region busqueda Usuario
        public void iniciarUsuario()
        {
            
            String[] cabecera1 = { IdiomaCultura.getMensaje(IdiomaCultura.WEB_CODIGO), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_NOMBRE), 
                "Login", IdiomaCultura.getMensaje(IdiomaCultura.WEB_PERFIL), IdiomaCultura.getMensaje(IdiomaCultura.WEB_SUPERVISOR)
            };
            String[] detalle1 = { "CODIGO", "NOMBRE", "LOGIN", "NOMBREPERFIL", "SUPERVISORNAME"};
            detalle = detalle1;
            cabecera = cabecera1;
            String[] anchoCab = { "50" };
            ancho = anchoCab;

            editarTool = IdiomaCultura.getMensaje(IdiomaCultura.WEB_EDITARUSUARIO);

            loDT = DBUsuario.findUsuarios(getUsuarioBean(), ((UsuarioBean)Session[SessionManager.USER_SESSION]).codigo);

        }

    private UsuarioBean getUsuarioBean()
    {

        UsuarioBean usuario = new UsuarioBean();

        usuario.codigo = Request.Form["txtcodigo"]; //txtCodigo.Value.Trim();
        usuario.nombre = Request.Form["txtnombre"]; //txtNombre.Value.Trim();
        usuario.codigoperfil = Request.Form["cmbperfil"]; //cmbPerfil.SelectedValue;
        usuario.login = Request.Form["txtlogin"]; //txtLogin.Value.Trim();
        usuario.flag = Request.Form["txtflag"] ;

        camposBusqueda = "txtcodigo=" + usuario.codigo;
        camposBusqueda += "&txtnombre=" + usuario.nombre;
        camposBusqueda += "&txtlogin=" + usuario.login;
        camposBusqueda += "&cmbperfil=" + usuario.codigoperfil;
        camposBusqueda += "&txtflag=" + usuario.flag;
        

        asignarPaginacionBean(usuario);

        return usuario;
    }
    #endregion

    #region busqueda perfil
    public void iniciarPerfil()
    {

        String[] cabecera1 = { IdiomaCultura.getMensaje(IdiomaCultura.WEB_CODIGO), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_NOMBRE)
            };
        String[] detalle1 = { "CODIGO", "NOMBRE"};
        detalle = detalle1;
        cabecera = cabecera1;
        
        editarTool = IdiomaCultura.getMensaje(IdiomaCultura.WEB_EDITAR);

        loDT = DBUsuario.findPerfilBean(getPerfilBean());

    }

    private PerfilBean getPerfilBean()
    {
        PerfilBean bean = new PerfilBean();

        bean.codigo = Request.Form["txtcodigo"];

        bean.nombre = Request.Form["txtnombre"];

        bean.flag = Request.Form["txtflag"];

        camposBusqueda = "txtcodigo=" + bean.codigo;

        camposBusqueda += "&txtnombre=" + bean.nombre;

        camposBusqueda += "&txtflag=" + bean.flag;

        asignarPaginacionBean(bean);

        return bean;
    }


    #endregion

    #region busqueda Actividad
    public bool iniciarActividad()
    {
       

        String[] cabecera1 = { IdiomaCultura.getMensaje(IdiomaCultura.WEB_CODIGO), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_CLIENTE), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_TIPOACTIVIDAD), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_FECHAINICIO),
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_FECHAFIN),
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_USUARIO),
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_PROGRAMACION)
            };

        String[] detalle1 = { "CODIGO", "NOMBRE", "TIPOACTIVIDAD", "FECHAINICIO", "FECHAFIN", "USUARIO", "PROGRAMACIONFORMAT" };
        String[] anchoCab = { "50"};
        detalle = detalle1;
        cabecera = cabecera1;
        ancho = anchoCab;

        editarTool = IdiomaCultura.getMensaje(IdiomaCultura.WEB_EDITARACTIVIDAD);

        ActividadBean bean = getActividadBean();

        bool flag = true;

        //valida la fecha
        if (bean.fechainicio != null && bean.fechainicio != "")
        {
            flag = StringUtils.validarFechaCompleta(bean.fechainicio);
        }

        if (flag)
            loDT = DBActividad.findActividad(bean);
        else
        {
            mensajeError = IdiomaCultura.getMensaje(IdiomaCultura.WEB_FECHA_INCORRECTA);
        }
        return flag;

    }


    private ActividadBean getActividadBean()
    {

        ActividadBean bean = new ActividadBean();

        bean.codigo = Request.Form["txtcodigo"];

        bean.codigocliente = Request.Form["cmbcliente"];  

        bean.codigousuario = Request.Form["txtcodigousuario"];

        bean.flag = Request.Form["txtflag"];

        bean.fechainicio = Request.Form["txtfecha"];

        bean.codigotipoactividad = Request.Form["txtcodigotipoactividad"];

        camposBusqueda = "txtcodigo=" + bean.codigo;

        camposBusqueda += "&cmbcliente=" + bean.codigocliente;

        camposBusqueda += "&txtcodigousuario=" + bean.codigousuario;

        camposBusqueda += "&txtflag=" + bean.flag;

        camposBusqueda += "&txtfecha=" + bean.fechainicio;

        camposBusqueda += "&txtcodigotipoactividad=" + bean.codigotipoactividad;
        
        asignarPaginacionBean(bean);


        return bean;
    }
    #endregion

    #region busqueda tipo Actividad
    public void iniciarTipoActividad()
    {

        String[] cabecera1 = { IdiomaCultura.getMensaje(IdiomaCultura.WEB_CODIGO), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_NOMBRE)
            };
        String[] detalle1 = { "CODIGO", "NOMBRE" };
        detalle = detalle1;
        cabecera = cabecera1;

        editarTool = IdiomaCultura.getMensaje(IdiomaCultura.WEB_EDITAR);

        loDT = DBActividad.findTipoActividadBean(getTipoActividadBean());

    }
    private TipoActividadBean getTipoActividadBean()
    {
        TipoActividadBean bean = new TipoActividadBean();

        bean.codigo = Request.Form["txtcodigo"];

        bean.nombre = Request.Form["txtnombre"];

        bean.flag = Request.Form["txtflag"];

        camposBusqueda = "txtcodigo=" + bean.codigo;

        camposBusqueda += "&txtnombre=" + bean.nombre;

        camposBusqueda += "&txtflag=" + bean.flag;

        asignarPaginacionBean(bean);

        return bean;
    }
    #endregion 

    #region busqueda motivo
    public void iniciarMotivo()
    {

        String[] cabecera1 = { 
            IdiomaCultura.getMensaje(IdiomaCultura.WEB_TIPOMOTIVO),
            IdiomaCultura.getMensaje(IdiomaCultura.WEB_CODIGO), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_NOMBRE)
            };
        String[] detalle1 = { "GRUPO", "CODIGO", "NOMBRE" };
        detalle = detalle1;
        cabecera = cabecera1;

        editarTool = IdiomaCultura.getMensaje(IdiomaCultura.WEB_EDITAR);

        loDT = DBPrincipal.findMotivoBean(getMotivoBean());

    }

    private MotivoBean getMotivoBean()
    {
        MotivoBean bean = new MotivoBean();

        bean.grupo = Request.Form["txtgrupo"];

        bean.codigo = Request.Form["txtcodigo"];

        bean.nombre = Request.Form["txtnombre"];

        bean.flag = Request.Form["txtflag"];

        camposBusqueda = "txtgrupo=" + bean.grupo;

        camposBusqueda += "&txtcodigo=" + bean.codigo;

        camposBusqueda += "&txtnombre=" + bean.nombre;

        camposBusqueda += "&txtflag=" + bean.flag;

        asignarPaginacionBean(bean);

        return bean;
    }

    #endregion
    
    #region Estado
    private EstadoBean getEstadoBean()
    {
        EstadoBean bean = new EstadoBean();

        bean.codigo = Request.Form["txtcodigo"];

        bean.nombre = Request.Form["txtnombre"];

        bean.flag = Request.Form["txtflag"];

        bean.codigotipoactividad = Request.Form["txtcodigotipoactividad"];

        camposBusqueda = "&txtcodigo=" + bean.codigo;

        camposBusqueda += "&txtnombre=" + bean.nombre;

        camposBusqueda += "&txtflag=" + bean.flag;

        camposBusqueda += "&txtcodigotipoactividad=" + bean.codigotipoactividad;

        asignarPaginacionBean(bean);

        return bean;
    }

    public void iniciarEstado()
    {

        String[] cabecera1 = { IdiomaCultura.getMensaje(IdiomaCultura.WEB_CODIGO), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_NOMBRE), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_TIPOACTIVIDAD), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_ORDEN),
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_FOTO),
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_LISTA),
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_TEXTO)
            };
    
        String[] detalle1 = { "CODIGO", "NOMBRE", "NOMBRETIPOACTIVIDAD", "ORDEN", "FLAGFOTO", "FLAGLISTA", "FLAGTEXTO" };
        detalle = detalle1;
        cabecera = cabecera1;
        String[] anchoCab = { "50" };
        ancho = anchoCab;

        editarTool = IdiomaCultura.getMensaje(IdiomaCultura.WEB_EDITARESTADO);

        loDT = DBActividad.findEstadoBean(getEstadoBean());

    }
    #endregion

    public void realizarBusqueda()
    {
        mensajeError = "";
        bool flag = true;
        permisoEditar = "";

        if(URLManager.WEB_ACTIVIDAD == Request.Form["hidModulo"])
        {
            permisoEditar = URLManager.WEB_ACTIVIDAD;
            flag = iniciarActividad();

        }
        if (URLManager.WEB_ESTADOS == Request.Form["hidModulo"])
        {
            permisoEditar = URLManager.WEB_ESTADOS;
            iniciarEstado();

        }

        if (URLManager.WEB_TIPOACTIVIDAD == Request.Form["hidModulo"])
        {
            permisoEditar = URLManager.WEB_TIPOACTIVIDAD;
            iniciarTipoActividad();

        }   
        else if(URLManager.WEB_USUARIO == Request.Form["hidModulo"]) 
        {
            permisoEditar = URLManager.WEB_USUARIO;
            iniciarUsuario();
         }
         else if (URLManager.WEB_PERFIL == Request.Form["hidModulo"])
         {
             permisoEditar = URLManager.WEB_PERFIL;
             iniciarPerfil();
         }
         else if (URLManager.WEB_MOTIVOS == Request.Form["hidModulo"])
         {
             permisoEditar = URLManager.WEB_MOTIVOS;
             iniciarMotivo();
         }
         else if (URLManager.WEB_CLIENTE == Request.Form["hidModulo"])
         {
             permisoEditar = URLManager.WEB_CLIENTE;
             iniciarCliente();
         }
         if (flag)
         {
             pagina.setTotalRegistros(loDT);
             pagina.calcularNumeroMostrar();
         }
         else 
         { 
            
         }
     }


     #region busqueda cliente
     public void iniciarCliente()
     {
         String[] cabecera1 = { IdiomaCultura.getMensaje(IdiomaCultura.WEB_CODIGO), 
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_NOMBRE),
                IdiomaCultura.getMensaje(IdiomaCultura.WEB_DIRECCION)
            };
         String[] detalle1 = { "CODIGO", "NOMBRE", "DIRECCION" };
         detalle = detalle1;
         cabecera = cabecera1;

         editarTool = IdiomaCultura.getMensaje(IdiomaCultura.WEB_EDITAR);

         loDT = DBCliente.findClienteBean(getClienteBean());

     }

     private ClienteBean getClienteBean()
     {
         ClienteBean bean = new ClienteBean();

         bean.codigo = Request.Form["txtcodigo"];

         bean.nombre = Request.Form["txtnombre"];

         bean.flag = Request.Form["txtflag"];

         camposBusqueda = "txtcodigo=" + bean.codigo;

         camposBusqueda += "&txtnombre=" + bean.nombre;

         camposBusqueda += "&txtflag=" + bean.flag;

         asignarPaginacionBean(bean);

         return bean;
     }


     #endregion

    #region irpagina
        public void irPagina()
    {
        String piPagina = Request.Form["numeroPagina"];
        String pAncla = Request.Form["ancla"];
        String pPaginaIzquierda = Request.Form["paginaIzquierda"];

        if (pagina != null && piPagina != null)
        {
            pagina.paginaAncla = pAncla;

            if (pPaginaIzquierda != null && !"".Equals(pPaginaIzquierda))
            {
                pagina.paginaIzquierda = int.Parse(pPaginaIzquierda);
            }

            pagina.irPagina(int.Parse(piPagina));

            realizarBusqueda();
        }
    }

    private void asignarPaginacionBean(AbstractBean bean)
    {
        pagina.buscarOrden = Request.Form["hidBuscarOrden"] != null ? int.Parse(Request.Form["hidBuscarOrden"]) : 0;
        pagina.buscarNombre = Request.Form["hidBuscarCampo"];
        camposBusqueda = camposBusqueda + "&hidModulo=" + Request.Form["hidModulo"];

        bean.registroporpagina = pagina.regitrosPorPagina;
        bean.paginaactual = pagina.paginaActual;
        bean.buscarorden = pagina.buscarOrden;
        bean.buscarname = pagina.buscarNombre;

        eliminarEditar = bean.flag;
    }

    #endregion


}
